// pages/user/user.js
import Ajax from "../../utils/ajax"
import Api from "../../utils/api"
import Util from "../../utils/util"
//获取应用实例
const app = getApp()

Page({

  /**
   * 页面的初始数据
   */
  data: {
      hasUserInfo: false,
      loading: false,
      getDate:{
        page:1,
        pageSize: 10,
        openid:'',
        startTime:'',
        endTime:''
      },
      list:[], // 打卡记录
      total:0,
      calendarShow: false, // 日期弹框显示与否
      currentDate:new Date().getTime(), // 日期时间
      maxDate: new Date().getTime(), // 日历最小时间
      dateTime:[], // 筛选时间
      authorizeShow: false // 授权登录弹框
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function () {
    if (!Util.isEmpty(app.globalData.userInfo)) {
      this.setData({
        hasUserInfo: true
      })
    }
    this.getList()
  },

  // 登录
  openLogin(){
    this.setData({
      authorizeShow: true
    })
  },

  // 登录弹框回调
  authorizeEvent(){
    this.onLoad();
    console.log('登录成功')
  },

  // 筛选按钮触发
  clickSeach(){
    this.setData({ calendarShow: true });
  },
  onClose() {
    this.setData({ calendarShow: false });
  },
  // 筛选确认
  confirmDate(event) {
    this.setData({
      currentDate: event.detail,
    });
    this.onClose()
    this.getList()
  },
  // 取消筛选
  onClear(){
    this.setData({
      dateTime: [],
    });
    this.onClose()
    this.getList()
  },
  // 筛选值改变 保存选中的值
  changeDate(event){
    this.setData({
      dateTime: event.detail.getValues()
    })
  },

  // 查询用户打卡记录
  getList: function(page=1){
    if(app.globalData.openid){
      if(page==1){
        // 第一页还原数据
        this.setData({
          list: [],
          total:0
        })
      }
      let date = this.data.dateTime
      let startTime=''
      let endTime=''
      if(date.length>0){
        startTime = date[0] + '-' + date[1] + '-1' 
        endTime = date[0] + '-' + (parseInt(date[1])+1) + '-1' 
      }
      this.setData({
        loading: true,
        'getDate.page': page,
        'getDate.openid': app.globalData.openid,
        'getDate.startTime': startTime,
        'getDate.endTime': endTime
      })
      Ajax.get(Api.wx.getUserSign,this.data.getDate).then(res=>{
        this.setData({
          loading: false,
          list: [...this.data.list, ...res.records],
          total: res.total
        })
      })
    }
  },

  // 列表点击
  cellClick: function(event){
    let id = event.target.dataset['id']
    wx.navigateTo({
      url: '../shareLocation/shareLocation?scene='+ encodeURIComponent(id),
    })
  },

  // 删除打卡记录
  deleteSign: function(event){
    if(event.detail == 'right'){
      Ajax.post(Api.wx.deleteSign,{ids:event.target.dataset.id}).then(res=>{
        // 还原今日打卡数状态
        app.globalData.signNumber = -1
        // 刷新列表
        this.getList()
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    console.log("加载")
    let page = this.data.getDate.page;
    let size = this.data.getDate.pageSize;
    let total = this.data.total
    page++
    if(page*size < total){
      this.getList(page)
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})